package com.wulis.provider.basic.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.wulis.common.support.BaseService;
import com.wulis.provider.basic.model.dto.InsertPositionDto;
import com.wulis.provider.basic.model.dto.QueryPositionPageDto;
import com.wulis.provider.basic.model.dto.UpdatePositionDto;
import com.wulis.provider.basic.model.entity.Position;
import com.wulis.provider.basic.model.vo.QueryPositionListVo;
import com.wulis.provider.basic.model.vo.QueryPositionPageVo;
import com.wulis.provider.basic.model.vo.QueryPositionVo;

import lombok.NonNull;

/**
 * 基础信息管理：职位表 Service
 *
 * @author WuliBao
 * @date 2020-05-21
 */
public interface PositionService extends BaseService<Position> {
    
    /**
     * WEB:查询职位列表(分页)
     * 
     * @param queryPositionPageDto queryPositionPageDto
     * @return IPage
     */
    IPage<QueryPositionPageVo> queryPositionPage(@NonNull QueryPositionPageDto queryPositionPageDto);
    
    /**
     * WEB:查询职位列表(全量)
     * 
     * @param enable enable
     * @return List
     */
    List<QueryPositionListVo> queryPositionList(Integer enable);
    
    /**
     * WEB:查询职位信息
     * 
     * @param id id
     * @return QueryPositionVo
     */
    QueryPositionVo queryPosition(@NonNull Long id);
    
    /**
     * WEB:新增职位信息
     * 
     * @param insertPositionDto insertPositionDto
     * @return Integer
     */
    Integer insertPosition(@NonNull InsertPositionDto insertPositionDto);
    
    /**
     * WEB:修改职位信息
     * 
     * @param updatePositionDto updatePositionDto
     * @return Integer
     */
    Integer updatePosition(@NonNull UpdatePositionDto updatePositionDto);
    
    /**
     * WEB:删除职位信息
     * 
     * @param id id
     * @return Integer
     */
    Integer deletePosition(@NonNull Long id);
}
